﻿using BCCommon;
using BCCommon.Enums;
using BCCommon.PaymentEnums;
using BCDto.Common.Payment.WeChatPayBill;
using BCDto.Common.Payment.WeChatPayBill.WxPayBillDetail;
using BCDto.Common.Payment.WeChatPayBill.WxPayBillStatistics;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCService.Common.Payment.PaymentBill.WxPayBill
{
    /// <summary>
    /// 微信对账单
    /// </summary>
    public interface IWxPayBillService
    {
        /// <summary>
        /// 插入微信对账单信息
        /// </summary>
        /// <param name="billDate">对账单日期（仅支持3个月内）</param>
        /// <param name="billType">对账单类型</param>
        /// <param name="result">微信对账单结果</param>
        /// <returns></returns>
        WxPayBillDto Insert(DateTime billDate, WeChatBillType billType,string result);

        /// <summary>
        /// 获取某一天微信对账单记录
        /// </summary>
        /// <param name="tradeDate">交易日期</param>
        /// <param name="weChatBillType">微信支付账单类型</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页数据条数</param>
        /// <returns></returns>
       PageableList<WxPayBillDetailDto,WxPayBillStatisticsDto> GetSomeDayBill(DateTime tradeDate, WeChatBillType weChatBillType,int pageIndex,int pageSize);

        /// <summary>
        /// 获取某一月微信对账单记录
        /// </summary>
        /// <param name="year">年</param>
        /// <param name="month">月</param>
        /// <param name="weChatBillType">微信支付账单类型</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页数据条数</param>
        /// <returns></returns>
        PageableList<WxPayBillDetailDto, WxPayBillStatisticsDto> GetSomeMonthBill(int year, int month,WeChatBillType weChatBillType, int pageIndex, int pageSize);

        /// <summary>
        /// 获取某一年微信对账单记录
        /// </summary>
        /// <param name="year">年</param>
        /// <param name="weChatBillType">微信支付账单类型</param>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页数据条数</param>
        /// <returns></returns>
        PageableList<WxPayBillDetailDto, WxPayBillStatisticsDto> GetSomeYearBill(int year, WeChatBillType weChatBillType, int pageIndex, int pageSize);
    }
}
